Nejde vymazat BLOB z ACCESSu pres TADOBlobStream
Otázka od: Vagner Pavel
18. 10. 2002 9:50
Hi lidi, nevim proc, ale nasledujici kod nevymaze data z databaze. Nevi
nekdo kde delam nejakou chybu?
dik Pavel
procedure TfrmMain.acDeletFromDBExecute(Sender: TObject);
var BS1:TADOBlobStream;
begin
ADOtbl.Edit;
ADOTbl.DisableControls;
BS1:=
TADoBLOBStream.Create(TBlobField(ADOtbl.FieldByName(lbBLOBS.Items[lbBLOBS.It
emIndex])),bmReadWrite);
try
try
BS1.Clear;
except
on E:Exception do MessageDlg(E.Message,mtError,[mbOK],0);
end;
finally
BS1.Free;
end;
ADOtbl.Post;
ADOtbl.Refresh;
ADOTbl.EnableControls;
end;
This electronic mail transmission contains confidential information intended
only for the person(s) named. Any use, distribution, copying or disclosure
by another person is strictly prohibited.
Tato zpráva obsahuje důvěrné informace, určené výlučně pro uvedeného
adresáta. Jakékoliv užití, kopírování, šíření nebo předávání obsahu zprávy
jiným osobám a subjektům je přísně zakázáno.
Odpovedá: Roman
18. 10. 2002 16:11
>Hi lidi, nevim proc, ale nasledujici kod nevymaze data z databaze. Nevi
>nekdo kde delam nejakou chybu?
No ja teda tyhle ADO komponenty neznam, ale nestacilo by
ADOTable.FieldByName('...').Clear?
Roman
==============================
http://kouzelne.misto.cz
Odpovedá: Macko Martin
18. 10. 2002 13:10
A nestaci jenom
ADOtbl.Edit;
ADOtbl.FieldByName(lbBLOBS.Items[lbBLOBS.ItemIndex]).Clear;
ADOtbl.Post;
?
-----Original Message-----
From: Vagner Pavel [mailto:Vagner@ceps.cz]
Sent: Friday, October 18, 2002 10:09 AM
To: 'delphi-l@clexpert.cz'
Subject: Nejde vymazat BLOB z ACCESSu pres TADOBlobStream
Hi lidi, nevim proc, ale nasledujici kod nevymaze data z databaze. Nevi
nekdo kde delam nejakou chybu?
dik Pavel
Odpovedá: Vagner Pavel
18. 10. 2002 15:39
nejak nestaci,
afterpost probehne,ale data v DB nejsou. fakt nevim, jinak napojene to mam
takto:
ADOconnection->ADOtable->DataSource(autoEdit:=False)->DBgrid(ReadOnly:=True)
DBgrid je tam ciste na prohlizeni, zmeny se provadej v Table,
pavel
procedure TfrmMain.ADOtblAfterPost(DataSet: TDataSet);
begin
ShowMessage('Ted jsem postnul');
end;
procedure TfrmMain.acDeletFromDBExecute(Sender: TObject);
begin
try
ADOTbl.DisableControls;
ADOtbl.Edit;
TBlobField(ADOtbl.FieldByName(lbBLOBS.Items[lbBLOBS.ItemIndex])).Clear;
ADOtbl.Post;
ADOTbl.EnableControls;
except
on E:Exception do MessageDlg(E.Message,mtError,[mbOK],0);
end;
end;
>A nestaci jenom
>ADOtbl.Edit;
>ADOtbl.FieldByName(lbBLOBS.Items[lbBLOBS.ItemIndex]).Clear;
>ADOtbl.Post;
This electronic mail transmission contains confidential information intended
only for the person(s) named. Any use, distribution, copying or disclosure
by another person is strictly prohibited.
Tato zpráva obsahuje důvěrné informace, určené výlučně pro uvedeného
adresáta. Jakékoliv užití, kopírování, šíření nebo předávání obsahu zprávy
jiným osobám a subjektům je přísně zakázáno.
Odpovedá: Vagner Pavel
18. 10. 2002 16:48
>No ja teda tyhle ADO komponenty neznam, ale nestacilo by
>ADOTable.FieldByName('...').Clear?
asi je neco shnileho ve state danskem, me pripada, ze ty data proste nekde
porad vysej a ne ane se jich zbavit. uz s tim dneska nemam silu bojovat, tak
az po vikendu
tohel porad nechodi, nevim proc
ADOtbl.Edit;
ShowMessage(IntToStr(TBlobField(ADOtbl.FieldByName(lbBLOBS.Item[lbBLOBS.Item
Index])).BlobSize) ); // ukaze spravne velikost blobu
TBlobField(ADOtbl.FieldByName(lbBLOBS.Items[lbBLOBS.ItemIndex])).Clear;
ShowMessage(IntToStr(TBlobField(ADOtbl.FieldByName(lbBLOBS.Items[lbBLOBS.Ite
mIndex])).BlobSize) ); //no tady porad ukazuje puvodni velikost,
podle me by tady mela bejt nula ne?
ADOtbl.Post;
pavel(W2000,D5, delfi amater)
PS: toto mi ale chodi, tak jsem z toho jelen
procedure TfrmMain.acReadFromMemExecute(Sender: TObject);
var s:TMemoryStream;
begin
ADOtbl.Edit;
BS1:= TADoBLOBStream.Create(TBlobField(ADOtbl.FieldByName(lbBLOBS.Items
[lbBLOBS.ItemIndex])),bmWrite);
s:= TMemoryStream.Create;
try
try
S.LoadFromFile(strFileName);
ADOTbl.DisableControls;
BS1.Clear;
BS1.LoadFromStream(s);
except
on E:Exception do MessageDlg(E.Message,mtError,[mbOK],0);
end;
finally
S.Free;
BS1.Free;
end;
ADOtbl.Post;
This electronic mail transmission contains confidential information intended
only for the person(s) named. Any use, distribution, copying or disclosure
by another person is strictly prohibited.
Tato zpráva obsahuje důvěrné informace, určené výlučně pro uvedeného
adresáta. Jakékoliv užití, kopírování, šíření nebo předávání obsahu zprávy
jiným osobám a subjektům je přísně zakázáno.
Odpovedá: Macko Martin
18. 10. 2002 17:24
To ze data v DB nejsou soudis podle toho co vidis v gridu ?
Zkus pridat jeste ADOtbl.Refresh ...
-----Original Message-----
From: Vagner Pavel [mailto:Vagner@ceps.cz]
Sent: Friday, October 18, 2002 2:16 PM
To: 'delphi-l@clexpert.cz'
Subject: RE: Nejde vymazat BLOB z ACCESSu pres TADOBlobStream
nejak nestaci,
afterpost probehne,ale data v DB nejsou. fakt nevim, jinak napojene to mam
takto:
ADOconnection->ADOtable->DataSource(autoEdit:=False)->DBgrid(ReadOnly:=T
ADOconnection->ADOtable->rue)
DBgrid je tam ciste na prohlizeni, zmeny se provadej v Table,
pavel
procedure TfrmMain.ADOtblAfterPost(DataSet: TDataSet);
begin
ShowMessage('Ted jsem postnul');
end;
procedure TfrmMain.acDeletFromDBExecute(Sender: TObject);
begin
try
ADOTbl.DisableControls;
ADOtbl.Edit;
TBlobField(ADOtbl.FieldByName(lbBLOBS.Items[lbBLOBS.ItemIndex])).Clear;
ADOtbl.Post;
ADOTbl.EnableControls;
except
on E:Exception do MessageDlg(E.Message,mtError,[mbOK],0);
end;
end;
>A nestaci jenom
>ADOtbl.Edit;
>ADOtbl.FieldByName(lbBLOBS.Items[lbBLOBS.ItemIndex]).Clear;
>ADOtbl.Post;
This electronic mail transmission contains confidential information intended
only for the person(s) named. Any use, distribution, copying or disclosure by
another person is strictly prohibited.
Tato zpráva obsahuje důvěrné informace, určené výlučně pro uvedeného adresáta.
Jakékoliv užití, kopírování, šíření nebo předávání obsahu zprávy jiným osobám a
subjektům je přísně zakázáno.
Odpovedá: Vagner Pavel
21. 10. 2002 7:54
>To ze data v DB nejsou soudis podle toho co vidis v gridu ?
>Zkus pridat jeste ADOtbl.Refresh ...
Jednak jsem se dival DBgigu a pak jeste normalne v accessu. i kdyz tam mam
ten refresh, tak to tam proste neni. Me je jasny, ze ta sekvence prikazu
musi preci chodit, tak nevim co jsem s tim provedl ja, ze me to nechodi.
pavel
This electronic mail transmission contains confidential information intended
only for the person(s) named. Any use, distribution, copying or disclosure
by another person is strictly prohibited.
Tato zpráva obsahuje důvěrné informace, určené výlučně pro uvedeného
adresáta. Jakékoliv užití, kopírování, šíření nebo předávání obsahu zprávy
jiným osobám a subjektům je přísně zakázáno.
Odpovedá: Macko Martin
23. 10. 2002 10:56
Neni to cele v nejake transakci ktera se necommitne ?
Nejake cachedupdate bez applyupdates ?
-----Original Message-----
From: Vagner Pavel [mailto:Vagner@ceps.cz]
Sent: Monday, October 21, 2002 7:41 AM
To: 'delphi-l@clexpert.cz'
Subject: RE: Nejde vymazat BLOB z ACCESSu pres TADOBlobStream
>To ze data v DB nejsou soudis podle toho co vidis v gridu ? Zkus pridat
>jeste ADOtbl.Refresh ...
Jednak jsem se dival DBgigu a pak jeste normalne v accessu. i kdyz tam
mam ten refresh, tak to tam proste neni. Me je jasny, ze ta sekvence
prikazu musi preci chodit, tak nevim co jsem s tim provedl ja, ze me to
nechodi.
pavel